/**
 * Copyright &copy; 2012-2016 <a href="https://github.com/thinkgem/jeesite">JeeSite</a> All rights reserved.
 */
package com.jiadakeji.ppm.modules.business.entity;

import com.jiadakeji.ppm.common.persistence.DataEntity;
import com.jiadakeji.ppm.common.utils.excel.annotation.ExcelField;
import org.hibernate.validator.constraints.Length;

import java.util.List;

/**
 * 房屋Entity
 * @author HHAOYU
 * @version 2019-07-09
 */
public class Room extends DataEntity<Room> {

	public static final String HAVE_FEEBACK = "1";
	public static final String NOT_HAVE_FEEBACK = "0";
	
	private static final long serialVersionUID = 1L;
	private String code;		// 房屋编号
	private String totalCode;		// 总和编码
	private String storey;		// 楼层
	private String name;		// 房屋名称
	private String roomTypePriceId;		// 房屋平方单价
	private String pot;		// 房产证
	private String buildingId;		// 栋号
	private Double buildAreaSize;		// build_area_size
	private Double usingAreaSize;		// 面积
	private Double feeAreaSize;			//计费面积
	private String houseHolderId;		// 所有者id
	private String usingCustomerId;		// 使用者id
	private String useFlag;		//使用标志
    private String feeBackFlag; //是否收违约金
	private Double balance;		// balance
	private String autoPay;	//wheather autoPay

	private String houseHolderName;
	private String usingCustomerName;

	private Customer houseHolder;
	private Customer usingCustomer;

	private Building building;

	private String communityId;
	private RoomTypePrice roomTypePrice;
	private List<Car>  carList;


	private String replaceId;
	private String replaceName;
	private String newHouseHolderId;
	
	public Room() {
		super();
	}

	public Room(String id){
		super(id);
	}

	@Length(min=0, max=32, message="房屋编号长度必须介于 0 和 32 之间")
	@ExcelField(title="房屋号", align=2, sort=20)
	public String getCode() {
		return code;
	}

	public void setCode(String code) {
		this.code = code;
	}
	
	@Length(min=0, max=64, message="总和编码长度必须介于 0 和 64 之间")
	public String getTotalCode() {
		return totalCode;
	}

	public void setTotalCode(String totalCode) {
		this.totalCode = totalCode;
	}
	
	@Length(min=0, max=32, message="楼层长度必须介于 0 和 32 之间")
	public String getStorey() {
		return storey;
	}

	public void setStorey(String storey) {
		this.storey = storey;
	}
	
	@Length(min=0, max=255, message="房屋名称长度必须介于 0 和 255 之间")
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Length(min=0, max=32, message="房屋平方单价长度必须介于 0 和 32 之间")
	@ExcelField(title="费用类型", align=2, sort=21)
	public String getRoomTypePriceId() {
		return roomTypePriceId;
	}

	public void setRoomTypePriceId(String roomTypePriceId) {
		this.roomTypePriceId = roomTypePriceId;
	}
	
	@Length(min=0, max=64, message="房产证长度必须介于 0 和 64 之间")
	public String getPot() {
		return pot;
	}

	public void setPot(String pot) {
		this.pot = pot;
	}
	
	@Length(min=0, max=32, message="栋号长度必须介于 0 和 32 之间")
	@ExcelField(title="楼栋号", align=2, sort=30)
	public String getBuildingId() {
		return buildingId;
	}

	public void setBuildingId(String buildingId) {
		this.buildingId = buildingId;
	}

	@ExcelField(title="建筑面积(㎡)", align=2, sort=40)
	public Double getBuildAreaSize() {
		return buildAreaSize;
	}

	public void setBuildAreaSize(Double buildAreaSize) {
		this.buildAreaSize = buildAreaSize;
	}
	
	public Double getUsingAreaSize() {
		return usingAreaSize;
	}
	@ExcelField(title="计费面积(㎡)", align=2, sort=50)
	public void setUsingAreaSize(Double usingAreaSize) {
		this.usingAreaSize = usingAreaSize;
	}

	public Double getFeeAreaSize() {
		return feeAreaSize;
	}

	public void setFeeAreaSize(Double feeAreaSize) {
		this.feeAreaSize = feeAreaSize;
	}

	@Length(min=0, max=32, message="所有者id长度必须介于 0 和 32 之间")
	public String getHouseHolderId() {
		return houseHolderId;
	}

	public void setHouseHolderId(String houseHolderId) {
		this.houseHolderId = houseHolderId;
	}
	
	@Length(min=0, max=32, message="使用者id长度必须介于 0 和 32 之间")
	public String getUsingCustomerId() {
		return usingCustomerId;
	}

	public void setUsingCustomerId(String usingCustomerId) {
		this.usingCustomerId = usingCustomerId;
	}

	public RoomTypePrice getRoomTypePrice() {
		return roomTypePrice;
	}

	public void setRoomTypePrice(RoomTypePrice roomTypePrice) {
		this.roomTypePrice = roomTypePrice;
	}

	public List<Car> getCarList() {
		return carList;
	}

	public void setCarList(List<Car> carList) {
		this.carList = carList;
	}

	public Building getBuilding() {
		return building;
	}

	public void setBuilding(Building building) {
		this.building = building;
	}


	public String getHouseHolderName() {
		return houseHolderName;
	}

	public void setHouseHolderName(String houseHolderName) {
		this.houseHolderName = houseHolderName;
	}

	public String getUsingCustomerName() {
		return usingCustomerName;
	}

	public void setUsingCustomerName(String usingCustomerName) {
		this.usingCustomerName = usingCustomerName;
	}

	public String getCommunityId() {
		return communityId;
	}

	public void setCommunityId(String communityId) {
		this.communityId = communityId;
	}


	public String getReplaceId() {
		return replaceId;
	}

	public void setReplaceId(String replaceId) {
		this.replaceId = replaceId;
	}

	public String getReplaceName() {
		return replaceName;
	}

	public void setReplaceName(String replaceName) {
		this.replaceName = replaceName;
	}

	@ExcelField(title="是否入住", align=2, sort=60)
	public String getUseFlag() {
		return useFlag;
	}

	public void setUseFlag(String useFlag) {
		this.useFlag = useFlag;
	}

    public String getFeeBackFlag() {
        return feeBackFlag;
    }

    public void setFeeBackFlag(String feeBackFlag) {
        this.feeBackFlag = feeBackFlag;
    }

	public Customer getHouseHolder() {
		return houseHolder;
	}

	public void setHouseHolder(Customer houseHolder) {
		this.houseHolder = houseHolder;
	}

	public Customer getUsingCustomer() {
		return usingCustomer;
	}

	public void setUsingCustomer(Customer usingCustomer) {
		this.usingCustomer = usingCustomer;
	}

	public String getNewHouseHolderId() {
		return newHouseHolderId;
	}

	public void setNewHouseHolderId(String newHouseHolderId) {
		this.newHouseHolderId = newHouseHolderId;
	}

	public Double getBalance() {
		return balance;
	}

	public void setBalance(Double balance) {
		this.balance = balance;
	}

	public String getAutoPay() {
		return autoPay;
	}

	public void setAutoPay(String autoPay) {
		this.autoPay = autoPay;
	}
}